# ferreus_orbit Plugins for Lenovo "ThinkSystem SR665"

fo_get_sorted_name(){
  local host=$(echo $DEVPATH | cut -d/ -f6)
  if [ "${host}" == "host0" ];then
    local slot=$(echo "$DEVPATH" | cut -d/ -f8| cut -d: -f3)
    case $slot in
    2[4-7])
      local id=$(($slot-10))
      ;;
    9[6-9]|10[0-9]|11[0-1])
      local id=$(($slot-94))
      ;;
    *)
      local id=$(($slot+2))
    esac
  else
    local ata=$(echo "${host}" |awk -F'ata' '{print $2}')
    local id=$(($ata - 1))
  fi

  if [ -z "$MAXILIUM_ARG_to_fo_name" ]; then
    echo sd$(fo_get_dev_letter ${id})
    exit 0
  else
    echo "Disk${id}"
    exit 0
  fi
}

get_dispo(){
  local phy=$(cat ${FO_CACHE_FILE_LSHW}|jq -r ".|select(.id==\"disk:5\").physid" 2>/dev/null)
	local h=$(echo "${phy}" | cut -d'.' -f1)
  [ "${h}" -eq "3" ] && local ini=96 || local ini=0

  echo 'HDD disposition (Front Panel):'
  printf -- "_%.s" $(seq 1 97);echo
  local D0=$(fo_get_name_by_bus "scsi@0:${h}.$(($ini + 0)).0" 23); local F0=$(fo_get_field_by_bus "scsi@0:${h}.$(($ini + 0)).0" 23)
  local D1=$(fo_get_name_by_bus "scsi@0:${h}.$(($ini + 1)).0" 23); local F1=$(fo_get_field_by_bus "scsi@0:${h}.$(($ini + 1)).0" 23)
  local D2=$(fo_get_name_by_bus "scsi@0:${h}.$(($ini + 2)).0" 23); local F2=$(fo_get_field_by_bus "scsi@0:${h}.$(($ini + 2)).0" 23)
  local D3=$(fo_get_name_by_bus "scsi@0:${h}.$(($ini + 3)).0" 23); local F3=$(fo_get_field_by_bus "scsi@0:${h}.$(($ini + 3)).0" 23)
  local D4=$(fo_get_name_by_bus "scsi@0:${h}.$(($ini + 4)).0" 23); local F4=$(fo_get_field_by_bus "scsi@0:${h}.$(($ini + 4)).0" 23)
  local D5=$(fo_get_name_by_bus "scsi@0:${h}.$(($ini + 5)).0" 23); local F5=$(fo_get_field_by_bus "scsi@0:${h}.$(($ini + 5)).0" 23)
  local D6=$(fo_get_name_by_bus "scsi@0:${h}.$(($ini + 6)).0" 23); local F6=$(fo_get_field_by_bus "scsi@0:${h}.$(($ini + 6)).0" 23)
  local D7=$(fo_get_name_by_bus "scsi@0:${h}.$(($ini + 7)).0" 23); local F7=$(fo_get_field_by_bus "scsi@0:${h}.$(($ini + 7)).0" 23)
  local D8=$(fo_get_name_by_bus "scsi@0:${h}.$(($ini + 8)).0" 23); local F8=$(fo_get_field_by_bus "scsi@0:${h}.$(($ini + 8)).0" 23)
  local D9=$(fo_get_name_by_bus "scsi@0:${h}.$(($ini + 9)).0" 23); local F9=$(fo_get_field_by_bus "scsi@0:${h}.$(($ini + 9)).0" 23)
  local D10=$(fo_get_name_by_bus "scsi@0:${h}.$(($ini + 10)).0" 23); local F10=$(fo_get_field_by_bus "scsi@0:${h}.$(($ini + 10)).0" 23)
  local D11=$(fo_get_name_by_bus "scsi@0:${h}.$(($ini + 11)).0" 23); local F11=$(fo_get_field_by_bus "scsi@0:${h}.$(($ini + 11)).0" 23)
  printf "|${D0}|${D3}|${D6}|${D9}|\n"
  printf "|${F0}|${F3}|${F6}|${F9}|\n"
  printf "|-----------------------|-----------------------|-----------------------|-----------------------|\n"
  printf "|${D1}|${D4}|${D7}|${D10}|\n"
  printf "|${F1}|${F4}|${F7}|${F10}|\n"
  printf "|-----------------------|-----------------------|-----------------------|-----------------------|\n"
  printf "|${D2}|${D5}|${D8}|${D11}|\n"
  printf "|${F2}|${F5}|${F8}|${F11}|\n"
  printf -- "-%.s" $(seq 1 97);echo
# Rear Panel:
  local phy=$(cat ${FO_CACHE_FILE_LSHW}|jq -r ".|select(.physid==\"2.18.0\").businfo" 2>/dev/null)
  [ "${phy}" == "scsi@0:2.24.0" ] && ini=12
  echo;echo 'HDD disposition (Rear Panel):'
  printf -- "_%.s" $(seq 1 97);echo
  D0=$(fo_get_name_by_bus "scsi@0:${h}.$(($ini + 12)).0" 23); F0=$(fo_get_field_by_bus "scsi@0:${h}.$(($ini + 12)).0" 23)
  D1=$(fo_get_name_by_bus "scsi@0:${h}.$(($ini + 13)).0" 23); F1=$(fo_get_field_by_bus "scsi@0:${h}.$(($ini + 13)).0" 23)
  D2=$(fo_get_name_by_bus "scsi@0:${h}.$(($ini + 14)).0" 23); F2=$(fo_get_field_by_bus "scsi@0:${h}.$(($ini + 14)).0" 23)
  D3=$(fo_get_name_by_bus "scsi@0:${h}.$(($ini + 15)).0" 23); F3=$(fo_get_field_by_bus "scsi@0:${h}.$(($ini + 15)).0" 23)
  printf "|${D0}|${D1}|${D2}|${D3}|\n"
  printf "|${F0}|${F1}|${F2}|${F3}|\n"
  printf -- "-%.s" $(seq 1 97);echo
}